The performance goals of storage software have increased by several orders of magnitude with the arrival of solid state drives (SSD). This significant increase in performance requires a revamp of conventional software design to eliminate bottlenecks from, for example, lock acquisition and contention.
Conventional storage and networking software does not account for parallel hardware interfaces present in non-volatile memory express (NVME) storage devices and remote direct memory access (RDMA) network adapters. These interfaces must operate independently for maximum performance.
Redundant array of independent disks (RAID) levels allow storing additional redundancy information such that one or more drives may fail without losing data. For SSD drives, media failure is still common and RAID may be applied to avoid data loss from, for example, NAND wear, retention, or read/program disturb.
Conventional RAID has not evolved with the increased performance of NVME drives. Conventional solutions have been to pursue new data storage formats, such as compressing and replicating data on different drives. However, these software intensive algorithms tend to lower the total performance capable from a storage appliance.